
/******************************************************************************
* Copyright (C) 2021, BBI Technology Co.,Ltd All rights reserved.
*
* Author: Embedded software group
*
* file： bsp_gpio.c 
*
*
*Note：此文件位于bsp层
 ******************************************************************************/
 
#include "bsp_gpio.h"

/*
************************************************************************
*	函数名: BSP_NB_GPIO_init
*	形  参：void
*	返回值:  void
*	说  明: NB 部分有3个引脚
************************************************************************
*/
void BSP_NB_GPIO_init(void)
{
	stc_gpio_cfg_t stcGpioCfg; 
    ///< 打开GPIO外设时钟门控
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE); 
    ///< 端口方向配置->输出
    stcGpioCfg.enDir = GpioDirOut;
    stcGpioCfg.enPd = GpioPdEnable; /*下拉*/  
	stcGpioCfg.enCtrlMode = GpioAHB;
	
    Gpio_Init(GpioPortC, GpioPin9, &stcGpioCfg);
	Gpio_Init(GpioPortC, GpioPin10, &stcGpioCfg);
	
	Gpio_ClrIO(GpioPortC,GpioPin9);	
	Gpio_ClrIO(GpioPortC,GpioPin10); // NBPower output pin
		
}



/*
************************************************************************
*	函数名: BSP_MOTOR_GPIO_init
*	形  参：void
*	返回值:  void
*	说  明: 一共4pin接口, PA10 PA9 2个到位开关检测引脚设置为输入
************************************************************************
*/
void BSP_MOTOR_GPIO_init(void)
{
	stc_gpio_cfg_t stcGpioCfg; 
    ///< 打开GPIO外设时钟门控
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE); 
    ///< 端口方向配置->输出
    stcGpioCfg.enDir = GpioDirOut;
    stcGpioCfg.enPd = GpioPdEnable; /*下拉*/  
	stcGpioCfg.enCtrlMode = GpioAHB;
	
    Gpio_Init(GPIO_MOTOCTRL1_Port, GPIO_MOTOCTRL1_Pin, &stcGpioCfg);
	Gpio_Init(GPIO_MOTOCTRL2_Port, GPIO_MOTOCTRL2_Pin, &stcGpioCfg);
	
	Gpio_ClrIO(GPIO_MOTOCTRL1_Port,GPIO_MOTOCTRL1_Pin);	
	Gpio_ClrIO(GPIO_MOTOCTRL2_Port,GPIO_MOTOCTRL2_Pin);
	
    ///< 端口方向配置->输入
    stcGpioCfg.enDir = GpioDirIn;
    ///< 端口上下拉配置->上拉(Must) 
    stcGpioCfg.enPu = GpioPuEnable;  
	  
    Gpio_Init(GPIO_MOTOSRead1_Port, GPIO_MOTOCRead1_Pin, &stcGpioCfg);
	Gpio_Init(GPIO_MOTOSRead2_Port, GPIO_MOTOCRead2_Pin, &stcGpioCfg);
}


/**
 ***********************************************************************
 ** \brief   读阀门GPIO状态
 **
 ** \param   读取到位开关GPIO电平状态   
 ** 
 ** \retval  void                                  
 ***********************************************************************/
void BSP_VALVE_GPIO_Read(uint8_t *Status1,uint8_t *Status2)
{
	 *Status1 = READ_MOTO_STATUS1; // Gpio_GetInputIO(GPIO_MOTOSRead1_Port, GPIO_MOTOCRead1_Pin);
	 *Status2 = READ_MOTO_STATUS2;//Gpio_GetInputIO(GPIO_MOTOSRead2_Port, GPIO_MOTOCRead2_Pin);
}

/*
光电直读计量IO初始化
*/
void BSP_GDLED_PORT_init(void)
{
	Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);

	//Gd led
	M0P_GPIO->PBDIR |= 0X00F8;
	//Gd wheel
	M0P_GPIO->PADIR |= 0X9000;
	//Gd control
	M0P_GPIO->PDOUT_f.PD00 = 0;
	M0P_GPIO->PDDIR_f.PD00 = 0;
	//Gd adc
	M0P_GPIO->PADIR |= 0X00F0;
	M0P_GPIO->PAADS |= 0X00F0;//Analog
	M0P_GPIO->PBDIR |= 0X0002;
	M0P_GPIO->PBADS |= 0X0002;//Analog
}


